$(function() {
    $.showMessage = function(options) {
        var defaults = {
            type: 'error',/*success,info,error*/
            message:'',
            messageId:'',
            parentId:'message_l',
            opacity:'slow',
            delay :5000,
            append:false,/*显示信息时，是否清空之前的信息*/
            mode:'plain' /*plain,modal,alert*/
        };
        options = $.extend(true, {}, defaults,options);
        var loader;
        if (options.messageId != '') {
            loader = $('#' + options.messageId);
        } else {
            if (options.type == 'error') {
                loader = $('#' + options.parentId).find('.error_message');
            } else if (options.type == 'success') {
                loader = $('#' + options.parentId).find('.success_message')
            } else {
                loader = $('#' + options.parentId).find('.info_message')
            }
        }
        if (options.mode == 'alert')  {
            if (!options.append) {
                $(loader).html(options.message);
            } else {
                $(loader).append(options.message);
            }
            $(loader).prepend('<a class="close" data-dismiss="alert" href="#">&times;</a>');
            $(loader).fadeIn(options.opacity, null);
        } else if (options.mode == 'modal'){
            var alertModal = $('#alertModal');
            $(alertModal).find("#alterContent").html(options.message);
            var m_top = ( $(document).height() - alertModal.height() )/2;
            alertModal.css({'margin':m_top + 'px auto'});
            $(alertModal).modal("show");
        } else {
            if (!options.append) {
                $(loader).html(options.message);
            } else {
                $(loader).append(options.message);
            }
            $(loader).fadeIn(options.opacity, null);
            $(loader).prepend('<a class="close" data-dismiss="alert" href="#">&times;</a>');
            setTimeout(function(){$(loader).fadeOut('fast',null);}, options.delay);
        }
    };

    $.confirm = function(options) {
        var defaults = {
            title: "是否删除选中的内容吗？",
            content: "如果是请点击确定按钮 ，否则请点取消。",
            confirm:function(){}
        };
        options = $.extend(true, {}, defaults, options);

        var modal_dialog = $("#confirmModal").find('.modal-dialog');

        $(modal_dialog).find("#confirmModalTitle").html(options.title);
        $(modal_dialog).find("#confirmModalContent").html(options.content);

        var m_top = ( $(document).height() - modal_dialog.height() )/2 - 120;
        modal_dialog.css({'margin':m_top + 'px auto'});
        $("#confirmModal").modal("show");
        $("#confirmModal").find(".sure").unbind("click");
        $("#confirmModal").find(".sure").click(function() {
            options.confirm();
            $("#confirmModal").modal("hide");
        });
    };

    $(document).ajaxStart(function() {
        showLoading();
    });

    $(document).ajaxComplete(function(event, request, options) {
        hideLoading();
        $("#content").getNiceScroll().resize();
        $('table tr td a').tooltip({'placement':'top','container':'body'});
        $('.dd3-content .controls a').tooltip({'placement':'top','container':'body'});
        $(".chosen-select").chosen({disable_search: true});

        $("table.check_table thead tr").each(function() {
            $(this).find("input[type=checkbox]").change(function() {
                if($(this).attr("checked")) {
                    $(this).parent().parent().parent().parent().find("input[name=ids]").attr("checked", true);
                    $(this).parent().parent().parent().parent().find("tbody tr").each(function() {
                        $(this).addClass("active");
                    });
                } else {
                    $(this).parent().parent().parent().parent().find("input[name=ids]").attr("checked", false);
                    $(this).parent().parent().parent().parent().find("tbody tr").removeClass("active");
                }
            });
        });

        $("table.check_table tbody tr").find("input[name=ids]").change(function() {
            if(!$(this).attr("checked")) {
                $(this).parent().parent().parent().parent().find("thead tr input[type=checkbox]").attr("checked", false);
            }
        });
        $("table.check_table tbody tr").unbind("click");
        $("table.check_table tbody tr").click(function(e) {
            if(e.target.tagName != 'TD' && e.target.tagName != 'INPUT') {
                return;
            }
            if(this.className.indexOf("active") == -1) {
                $(this).addClass("active");
                $(this).find("input[type=checkbox]").attr("checked", true);
            } else {
                $(this).removeClass("active");
                $(this).find("input[type=checkbox]").attr("checked", false);
            }
        });

        //判断是session过期
        var result = $.parseJSON(request.responseText);
        if(result.returnCode == -9999) {
            $.showMessage({mode:"modal",message:result.returnMsg,type:"success"});
            setTimeout(function() {
                window.location.reload();
            }, 2000);
        }
        if(result.returnCode == -9998) {
            $.showMessage({mode:"modal",message:result.returnMsg,type:"success"});
        }
    });

    $("input[type='reset'], button[type='reset']").click(function(e){
        e.preventDefault();
        var form = $(this).closest('form').get(0);
        form.reset();
        $(form).find('select').each(function(i, v) {
            $(v).trigger('chosen:updated');
        });
    });

    $("table.check_table thead tr").each(function() {
        $(this).find("input[type=checkbox]").change(function() {
            if($(this).attr("checked")) {
                $(this).parent().parent().parent().parent().find("input[name=ids]").attr("checked", true);
                $(this).parent().parent().parent().parent().find("tbody tr").each(function() {
                    $(this).addClass("active");
                });
            } else {
                $(this).parent().parent().parent().parent().find("input[name=ids]").attr("checked", false);
                $(this).parent().parent().parent().parent().find("tbody tr").removeClass("active");
            }
        });
    });

    $("table.check_table tbody tr").find("input[name=ids]").change(function() {
        if(!$(this).attr("checked")) {
            $(this).parent().parent().parent().parent().find("thead tr input[type=checkbox]").attr("checked", false);
        }
    });

    $("table.check_table tbody tr").click(function(e) {
        if(e.target.tagName != 'TD' && e.target.tagName != 'INPUT') {
            return;
        }
        if(this.className.indexOf("active") == -1) {
            $(this).addClass("active");
            $(this).find("input[type=checkbox]").attr("checked", true);
        } else {
            $(this).removeClass("active");
            $(this).find("input[type=checkbox]").attr("checked", false);
        }
    });

    Date.prototype.format = function(format)
    {
        /*
         * format="yyyy-MM-dd hh:mm:ss";
         */
        var o = {
            "M+" : this.getMonth() + 1,
            "d+" : this.getDate(),
            "h+" : this.getHours(),
            "m+" : this.getMinutes(),
            "s+" : this.getSeconds(),
            "q+" : Math.floor((this.getMonth() + 3) / 3),
            "S" : this.getMilliseconds()
        }

        if (/(y+)/.test(format))
        {
            format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4
                - RegExp.$1.length));
        }
        for (var k in o)
        {
            if (new RegExp("(" + k + ")").test(format))
            {
                format = format.replace(RegExp.$1, RegExp.$1.length == 1
                    ? o[k]
                    : ("00" + o[k]).substr(("" + o[k]).length));
            }
        }
        return format;
    }

});
//显示loading
function showLoading() {
    var _loading = $("#loader");
    _loading.parent().show();
    _loading.show();
}

//隐藏loading
function hideLoading() {
    var _loading = $("#loader");
    setTimeout(function() {
        _loading.parent().hide();
        _loading.hide();
    }, 500);
}



